import { httpClient } from '@/config'


/**
 * 登录
 */
export function accountLogin(data: SimpleLoginParam) {
    return httpClient.send<LoginResponse, SimpleLoginParam>({
        url: '/token',
        method: 'POST',
        data,
    })
}

/**
 * 更新账户信息
 */
export function updateAccount(data: AccountParam) {
    return httpClient.send<Account, AccountParam>({
        url: '/account',
        method: 'PUT',
        data,
    })
}


export interface SimpleLoginParam {
    username: string

    password: string
}

export interface LoginResponse {

    /**
     * 访问令牌
     */
    access?: JwtToken

    /**
     * 登录账户信息
     */
    account?: Account

    /**
     * 刷新令牌
     */
    refresh?: JwtToken

}

/**
 * 访问令牌
 */
export interface JwtToken {

    expiresAt?: string

    token?: string

}

export interface Account {
    /**
     * id
     */
    id: number;

    /**
     * 用户名
     */
    username: string;

    /**
     * 昵称
     */
    nickname: string;

    /**
     * 头像
     */
    avatar: string;

    /**
     * 邮箱
     */
    email: string;

    /**
     * 手机号
     */
    mobile: string;

    version: number;

    createdAt: string;

}

export interface AccountParam {
    /**
     * 昵称
     */
    nickname?: string;

    /**
     * 头像
     */
    avatar?: string;

    /**
     * 邮箱
     */
    email?: string;

    /**
     * 手机号
     */
    mobile?: string;

    version?: number;
}
